#include __ZBUFFER_STATE_H__
#define __ZBUFFER_STATE_H__

#include "RenderState.h"

class ZBufferState : public RenderState
{
public:
	ZBufferState();
	virtual Type get_type() const;

	bool& enabled();
	bool& writable();

	enum CompareFunction
	{
		GL_NEVER,
		GL_LESS,
		GL_EQUAL,
		GL_LEQUAL,
		GL_NOTEQUAL,
		GL_GEQUAL,
		GL_ALWAYS,
		CF_QUANTITY
	};

	CompareFunction& compare();

protected:
	bool m_enabled, m_writeable;
	CompareFunction m_compare;
};

#include "ZBufferState.inl"

#endif
	
